.\" generated with Ronn/v0.7.3
.\" http://github.com/rtomayko/ronn/tree/0.7.3
.
.TH "SORT" "1" "March 2015" "" ""
.
.SH "NAME"
\fBsort\fR \- − 对文本文件行排序
.
.SH "描述"
sort针对文本文件的内容,以行为单位来排序\.过程如下:
.
.P
首先sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次 按ASCII码值进行比较,最后将他们按升序输出\.用户可以保存排序后的文件内容,或 把排序后的文件内容输出\.
.
.SH "语法"
\fBsort [OPTION]\.\.\. 源文件 [−o 输出文件]\fR
.
.SH "选项"
.
.TP
\fB−b\fR
忽略每一行前面的所有空白部分,从第一个可见字符开始比较\.
.
.TP
\fB−c\fR
检查文件是否已经按照顺序排序,如果乱序,则输出第一个乱序的行的相关 信息,最后返回\.
.
.TP
\fB−C\fR
会检查文件是否已排好序,如果乱序,不输出内容,仅返回11\.
.
.TP
\fB−d\fR
在关键字中只考虑[a\-zA\-Z0\-9]字符\.
.
.TP
\fB−f\fR
排序时,将关键字中的小写字母折合成大写字母,忽略大小写字母\.
.
.TP
\fB−g\fR
按照通常的数字顺序作比较\.
.
.TP
\fB−i\fR
在关键字中只考虑[><40\-><176]字符\.
.
.TP
\fB−k KEY\fR
KEY格式为[FSTART[\.CSTART]][MODIFIER][,[FEND[\.CEND]][MODIFIER]], 表示按域排序\.FSTART表示参加排序的域,而CSTART表示在FSTART域中从第 几个字符开始算“排序首字符”\.CSTART可以省略的,表示从本域的开头部分 开始\.同理,你可以设定FEND和CEND,省略FEND表示到行尾,省略CEND表示到 FEND域尾,即本域的最后一个字符\.或者,如果你将CEND设定为0(零),也是 表示结尾到“域尾”\.MODIFIER部分可以使用的字母是"b,d,f,i,n,r"\.其中 "n"表示对这个域进行排序时,要按照数值大小进行排序,"r"表示逆序排列 ,"b"表示忽略本域的空白符号,"d"表示对本域按照字典顺序排序(即只考 虑空白和字母),"f"表示对本域排序时忽略大小写,"I"表示忽略“不可打印 字符”,只针对可打印字符进行排序\.参见范例\.
.
.TP
\fB−l\fR
按照当前环境排序\.
.
.TP
\fB−m\fR
合并已经排序好的文件,不排序\.
.
.TP
\fB−M\fR
会以月份来排序,比如JAN小于FEB等\.
.
.TP
\fB−n\fR
依照数值的大小排序\.默认情况下2比10大,因为sort会将10当作1和0\.
.
.TP
\fB−o file\fR
将排序后的结果存入文件file中\.sort默认是把结果输出到标准输出,用重 定向输出到原文件会得到一个空白的文件\."−o"选项可以将结果写入原文 件\.
.
.TP
\fB−r\fR
sort默认的排序方式是升序,该选项可以切换为降序排序\.
.
.TP
\fB−s\fR
通过屏蔽最后的再分类比较来稳定排序\.
.
.TP
\fB−t SEP\fR
指定排序时所用的栏位分隔字符SEP\.
.
.TP
\fB−T DIRECTORY\fR
使用DIRECTORY存放临时文件,而不是$TMPDIR或者/tmp
.
.TP
\fB−z\fR
以0字节结束行,而不是使用换行符\.
.
.TP
\fB−u\fR
如果有"−c",则按严格的顺序进行检查;如果有"−m",则只输出相等顺序的 第一个,此时可以去除输入中的重复行\.
.
.TP
\fB−−help\fR
显示帮助并退出\.
.
.TP
\fB−−version\fR
输出版本信息并退出\.
.
.SH "范例"
下面这个文件有三列,列与列之间用冒号隔开了,第一列表示水果类型,第二列表示 水果数量,第三列表示水果价格\.
.
.IP "" 4
.
.nf

$ cat fruit_name
banana:30:5\.5
apple:10:2\.5
pear:90:2\.3
orange:20:3\.4
.
.fi
.
.IP "" 0
.
.P
要以水果数量来排序,即以第二列来排序,则可以使用−t选项设定间隔符\.指定了间 隔符之后,就可以用−k来指定列数了\.
.
.IP "" 4
.
.nf

$ sort −n −k 2 −t ´:´ fruit_num
apple:10:2\.5
orange:20:3\.4
banana:30:5\.5
pear:90:2\.3
.
.fi
.
.IP "" 0

